/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package manager.modulo.estoque.enumerator;

import java.util.LinkedList;

/**
 *
 * @author THIAGO
 */
public class EnumTipoEntradaEstoque {

    public enum TipoEntradaEstoque {

        REVENDEDOR,
        FABRICANTE,
        RETORNOOBRA,
        DEVOLUCAOCLIENTE,
        CORRECAOESTOQUE,
        NAOENCONTRADO
    }

    public static TipoEntradaEstoque ConverterNumeroEnum(int numero) {
        switch (numero) {
            case 1:
                return TipoEntradaEstoque.REVENDEDOR;
            case 2:
                return TipoEntradaEstoque.FABRICANTE;
            case 3:
                return TipoEntradaEstoque.RETORNOOBRA;
            case 4:
                return TipoEntradaEstoque.DEVOLUCAOCLIENTE;
            case 5:
                return TipoEntradaEstoque.CORRECAOESTOQUE;
            default:
                return TipoEntradaEstoque.NAOENCONTRADO;
        }
    }

    public static int ConverterEnumNumero(TipoEntradaEstoque tipoInsumo) {
        switch (tipoInsumo) {
            case REVENDEDOR:
                return 1;
            case FABRICANTE:
                return 2;
            case RETORNOOBRA:
                return 3;
            case DEVOLUCAOCLIENTE:
                return 4;
            case CORRECAOESTOQUE:
                return 5;
            default:
                return 0;
        }
    }

    public static String ConvertEnumString(TipoEntradaEstoque tipoInsumo) {
        switch (tipoInsumo) {
            case REVENDEDOR:
                return "REVENDEDOR";
            case FABRICANTE:
                return "FABRICANTE";
            case RETORNOOBRA:
                return "RETORNO DE OBRA";
            case DEVOLUCAOCLIENTE:
                return "DEVOLUÇÃO";
            case CORRECAOESTOQUE:
                return "CORREÇÃO DE ESTOQUE";
            default:
                return "NÃO ENCONTRADO";
        }
    }

    public static TipoEntradaEstoque ConvertStringEnum(String unidade) {
        if (unidade.equalsIgnoreCase(EnumTipoEntradaEstoque.ConvertEnumString(TipoEntradaEstoque.REVENDEDOR))) {
            return TipoEntradaEstoque.REVENDEDOR;
        } else if (unidade.equalsIgnoreCase(EnumTipoEntradaEstoque.ConvertEnumString(TipoEntradaEstoque.FABRICANTE))) {
            return TipoEntradaEstoque.FABRICANTE;
        } else if (unidade.equalsIgnoreCase(EnumTipoEntradaEstoque.ConvertEnumString(TipoEntradaEstoque.RETORNOOBRA))) {
            return TipoEntradaEstoque.RETORNOOBRA;
        } else if (unidade.equalsIgnoreCase(EnumTipoEntradaEstoque.ConvertEnumString(TipoEntradaEstoque.DEVOLUCAOCLIENTE))) {
            return TipoEntradaEstoque.DEVOLUCAOCLIENTE;
        } else if (unidade.equalsIgnoreCase(EnumTipoEntradaEstoque.ConvertEnumString(TipoEntradaEstoque.CORRECAOESTOQUE))) {
            return TipoEntradaEstoque.CORRECAOESTOQUE;
        } else {
            return TipoEntradaEstoque.NAOENCONTRADO;
        }
    }

    public static LinkedList<TipoEntradaEstoque> ListaTipos() {
        LinkedList<TipoEntradaEstoque> listaUnidades = new LinkedList<TipoEntradaEstoque>();
        listaUnidades.add(TipoEntradaEstoque.REVENDEDOR);
        listaUnidades.add(TipoEntradaEstoque.FABRICANTE);
        listaUnidades.add(TipoEntradaEstoque.RETORNOOBRA);
        listaUnidades.add(TipoEntradaEstoque.DEVOLUCAOCLIENTE);

        return listaUnidades;
    }

    public static LinkedList<String> ListaStringTipos() {
        LinkedList<String> listaUnidades = new LinkedList<String>();
        listaUnidades.add(EnumTipoEntradaEstoque.ConvertEnumString(TipoEntradaEstoque.REVENDEDOR));
        listaUnidades.add(EnumTipoEntradaEstoque.ConvertEnumString(TipoEntradaEstoque.FABRICANTE));
        listaUnidades.add(EnumTipoEntradaEstoque.ConvertEnumString(TipoEntradaEstoque.RETORNOOBRA));
        listaUnidades.add(EnumTipoEntradaEstoque.ConvertEnumString(TipoEntradaEstoque.DEVOLUCAOCLIENTE));

        return listaUnidades;
    }
}
